package cn.pxs.mapper;

import cn.pxs.entity.Book;
import cn.pxs.entity.NewBook;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface BookMapper {
    //书籍全查询
    List<NewBook> findAll();
    //id查找
    NewBook findById(int id);
    //分页查找
    List<NewBook> findByPage(@Param("start")Integer start,
                             @Param("num") Integer num);
    //行数查找
    int findByLine();
    //添加书籍
    void add(NewBook newBook);
    //修改书籍
    void update(NewBook newBook);
    //书籍分页查找(typeid)
    List<NewBook> findBookByPage(@Param("start")Integer start,
                                 @Param("num") Integer num, @Param("typeid") Integer typeid);
    //行数查找(typeid)
    int findByTypeIDLine(Integer typeid);
    //点赞加1
    void updateRate(@Param("rate")Integer rate,
                    @Param("id") Integer id);
    //点赞Rate前五
    List<NewBook> findRate5();
    //购物车前五
    List<NewBook> findFav5();
    //查salenum前五
    List<NewBook> findSale5();
    //查找书本信息 Rate 高到低
    List<NewBook> findBookByPageRate(@Param("start")Integer start,
                                     @Param("num") Integer num, @Param("typeid") Integer typeid);
    //查找书本信息 Sale 高到低
    List<NewBook> findBookByPageSale(@Param("start")Integer start,
                                     @Param("num") Integer num, @Param("typeid") Integer typeid);
    //查找书本信息 Fav 高到低
    List<NewBook> findBookByPageFav(@Param("start")Integer start,
                                    @Param("num") Integer num, @Param("typeid") Integer typeid);
    //模糊查询 书名 出版社 作者
    List<NewBook> findIf(@Param("start")Integer start,
                         @Param("num") Integer num, @Param("key") String key);

    int findByIfIDLine(@Param("key")String key);


}
